package qcmPlus.actions;

import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import qcmPlus.beans.Utilisateur;
import qcmPlus.dao.UtilisateurDao;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;


public class IndexAction extends ActionSupport implements SessionAware {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private String username = null;
	private String password = null;
	private Map<String, Object> session;

	@RequiredStringValidator(message = "Le login est obligatoire !!", trim = true)
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	@RequiredStringValidator(message = "Le password est obligatoire !", trim = true)
	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	 public void setSession(Map<String, Object> session) 
	 {  this.session = session;  }    
	 
	 public Map<String, Object> getSession() 
	 {  return session;  }
	
	
 
	public String  execute()
	{
		getSession().put("utilisateur", "visiteur");
		
		return SUCCESS;
		
	}

//	public String verif() throws InvalidKeyException, BadPaddingException, IllegalBlockSizeException, Exception 
	public String verif() 

	{

		UtilisateurDao userVerif = new UtilisateurDao();
		Utilisateur user = new Utilisateur();
		user = userVerif.verification(getUsername(), getPassword());
		
		String retour = null;
		if (user != null) 
		{
	
			if (user.isEstAdmin() == true) 
			{
				getSession().put("utilisateur", "admin");
	
				retour = "administration";
			} else {
				if (user.isEstAdmin() == false)
					getSession().put("utilisateur", "stagiaire");
				 
		
				    retour = "stagiaire";
			}
			
			getSession().put("idutilisateur", user.getId());
			
		} else {
			addActionError("Mauvais login et/ou mauvais mot de passe, veuillez reessayer.");
			retour = ERROR;
		}
		
		return retour;

	}
	
	
	public String deconnexion() 
	{
		getSession().remove("utilisateur");
		//getSession().remove("authentification");
		return SUCCESS;
	}

	
}
